With the recent development of computation and communication resources two main trends in the architecture of mobile terminals have risen. The first trend is the application convergence and increasing diversity, e.g. more and more diverse functions or subsystems are integrated into a single terminal enabling the terminal to perform new services and applications. The second trend is directed to the aggravation of architecture complexity, e.g. the overall complexity of both hardware and software architectures exceeds the limits of conventional architectures style based on cores connected by buses.
One possible solution to meet for the above mentioned trends appears to be modularity. When the boundaries of modules are chosen to coincide with functional subsystems like GSM modems, displays or audio, two levels of hardware and software architecting can be derived. The first one is the intra-subsystem architecture where the conventional architecture style based on cores connected by buses can be applied whereby existing subsystems can be re-used. The second level of architecting is the inter-subsystem architecture, where a network architecture is applied, with the inter-subsystem communication being performed on an OSI-like layered network architecture. With these two levels of architecting the development of functional subsystems can be performed as already known in the art, and therefore intellectual property (IP)-Blocks can be re-used.
Typically, most mobile terminals provide their function on the bases of a few peripheral components, like a portable audio player (an audio subsystem and a CD or solid-state storage), a mobile phone (GSM modem and speech codec), a palm-top organizer (touch screen+microprocessor) or a solid-state camera (camera+display+solid-state storage). The variety of these different subsystems, e.g. peripheral components, increases steadily. These different subsystems evolve independently of each other and rapidly become more advanced and more complex, so that their performance parameters, like bit rates, capacity, resolution and quality steadily improve. The actual terminals contain more and more subsystems and the internals of the subsystems become less important since the emphasis is moved towards software, applications and services.
While the traditional architecting based on cores and buses have been focussing on computations over a limited set of computation resources, scheduling tasks over a small set of tightly coupled blocks having low latencies, and tight bus protocols, the architecting between subsystems focuses no longer on computation but on communication. The resources shared by the different subsystems is the communication infrastructure and possibly a shared memory. These subsystems are usually loosely coupled with relatively high latencies and relatively low synchronisation rates as well as network protocols.
A terminal usually consists of a plurality of subsystems which are connected to each other via a network. Subsystems like UMTS modems or video codec can be designed independently. They may contain one or more programmable cores, some coprocessors, local memories and I/O. The network is used to connect the subsystems. All inter-subsystem communication, like data, instructions, memory traffic and control information will be performed via the network.
A so called Systems-on-Chip SoC typical comprise a plurality of subsystems e.g. functional elements or modules with local memory, which are connected by an interconnect scheme. This System-on-Chip SoC are adapted to perform different applications which can be mapped onto the set of subsystems. All functions performed by the subsystems require a certain amount of memory for the performance of their processings. The exact amount of memory will depend on a plurality of parameters like the screen size for video decoding, the data rate for modems or the like. Accordingly, different applications will have different demands for memory. Nowadays most application domains in the area of consumer electronics require that the system cost as well as the power consumption is minimized. To be competitive in the above mentioned constraint environment it is essential that the required amount of memory (both on-chip or external) is optimised for the specific application. On the other hand, with the above described trend of convergence of many consumer electronics markets like mobile phones, PDAs, MP3 player or the like, it is not feasible any more to look at a single specific application or merely a limited set of applications. Any realization of the terminal must be low-cost and low-power, where the costs are substantially defined by the bill of material, namely the chip area, the chip count, pin counts and PCB wiring layers.
Additionally to the above memory requirements, several different communication services are required to cope with the on chip communication, where the different blocks or modules in the system may produce processing data with different speeds and at different granularities. One communication service may be based on a direct connection with only a small buffer located in a local memory of a module, where two hardware blocks or modules communicate directly between each other via a network characterized by a low granularity of data exchange, and a high synchronization rate. A second communication service may be based on a memory-based connection, where data is stored in a buffer in order to decouple two communicating blocks or modules. Memory-based communication is characterized by a coarse granularity of data exchange, and a lower synchronization rate because of a larger buffer can be allocated in a shared memory.
Known systems are usually designed such that all possible connections between modules are already evaluated during the design of the system and each communication is statically linked to a certain communication service. Typically, resource constrained systems are very much optimized towards the usage of the resources, the communication is known well and is static and furthermore there is no dynamic connection creation. This might be feasible for systems with already known applications, however, for systems where the final applications are not yet known or may be altered during their lifetime, the communication between the blocks or modules must be more flexible. Accordingly, the system must be able to provide a dynamic allocation of communication resources. Although sometimes connections in such systems are created dynamically only one predefined connection service is used. Especially for resource constrained systems on chip SoC, i.e. being low on resources, a dynamic allocation of communication resources is essential in order to provide low costs and low power devices. When a certain communication request is served always in the same way (possibly the worst case) regardless of its present parameters, some cases may appear where all resources are already occupied. Accordingly, other communication requests might be denied since all the resources are occupied. Especially for portable devices, which are heavily power constrained and where the functionality of several devices converges and effective usages of the available resources is essential to be competitive in this particular area. Therefore, a more flexible handling of the communication requests and the granting of corresponding communication resources appears to be beneficial.